home *** CD-ROM | disk | FTP | other *** search
-
-
-
- rrrreeee((((3333)))) 22223333////OOOOcccctttt////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) rrrreeee((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- re - Perl pragma to alter regular expression behaviour
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use re 'taint';
- ($x) = ($^X =~ /^(.*)$/s); # $x is tainted here
-
- $pat = '(?{ $foo = 1 })';
- use re 'eval';
- /foo${pat}bar/; # won't fail (when not under -T switch)
-
- {
- no re 'taint'; # the default
- ($x) = ($^X =~ /^(.*)$/s); # $x is not tainted here
-
- no re 'eval'; # the default
- /foo${pat}bar/; # disallowed (with or without -T switch)
- }
-
- use re 'debug'; # NOT lexically scoped (as others are)
- /^(.*)$/s; # output debugging info during
- # compile and run time
-
- use re 'debugcolor'; # same as 'debug', but with colored output
- ...
-
- (We use $^X in these examples because it's tainted by
- default.)
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- When use re 'taint' is in effect, and a tainted string is
- the target of a regex, the regex memories (or values
- returned by the m// operator in list context) are tainted.
- This feature is useful when regex operations on tainted data
- aren't meant to extract safe substrings, but to perform
- other transformations.
-
- When use re 'eval' is in effect, a regex is allowed to
- contain (?{ ... }) zero-width assertions even if regular
- expression contains variable interpolation. That is
- normally disallowed, since it is a potential security risk.
- Note that this pragma is ignored when the regular expression
- is obtained from tainted data, i.e. evaluation is always
- disallowed with tainted regular expresssions. See the
- section on (?{ _c_o_d_e }) in the _p_e_r_l_r_e manpage.
-
- For the purpose of this pragma, interpolation of precompiled
- regular expressions (i.e., the result of qr//) is _n_o_t
- considered variable interpolation. Thus:
-
- /foo${pat}bar/
-
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- rrrreeee((((3333)))) 22223333////OOOOcccctttt////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) rrrreeee((((3333))))
-
-
-
- _i_s allowed if $pat is a precompiled regular expression, even
- if $pat contains (?{ ... }) assertions.
-
- When use re 'debug' is in effect, perl emits debugging
- messages when compiling and using regular expressions. The
- output is the same as that obtained by running a
- -DDEBUGGING-enabled perl interpreter with the ----DDDDrrrr switch. It
- may be quite voluminous depending on the complexity of the
- match. Using debugcolor instead of debug enables a form of
- output that can be used to get a colorful display on
- terminals that understand termcap color sequences. Set
- $ENV{PERL_RE_TC} to a comma-separated list of termcap
- properties to use for highlighting strings on/off, pre-point
- part on/off. See the section on _D_e_b_u_g_g_i_n_g _r_e_g_u_l_a_r
- _e_x_p_r_e_s_s_i_o_n_s in the _p_e_r_l_d_e_b_u_g manpage for additional info.
-
- The directive use re 'debug' is _n_o_t _l_e_x_i_c_a_l_l_y _s_c_o_p_e_d, as the
- other directives are. It has both compile-time and run-time
- effects.
-
- See the section on _P_r_a_g_m_a_t_i_c _M_o_d_u_l_e_s in the _p_e_r_l_m_o_d_l_i_b
- manpage.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-